首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。
建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。
建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录
建立一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。
建立一个公共的只读文件夹public,所有人只读这个文件夹的内容。
前期的工作
建立3个组:
1 2 3 4 5
| groupadd caiwu groupadd network groupadd lingdao
|
添加用户并加入相关的组当中:
1 2 3 4 5 6 7 8 9 10 11
| useradd caiwu01 -g caiwu useradd caiwu02 -g caiwu useradd network01 -g network useradd network02 -g network useradd lingdao01 -g lingdao useradd lingdao02 -g lingdao
|
然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中
1 2 3 4 5 6 7 8 9
| mkdir /home/samba mkdir /home/samba/caiwu mkdir /home/samba/lingdao mkdir /home/samba/exchange mkdir /home/samba/public
|
为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,通过samba灵活的权限管理来设置上面的5点要求。
以下是smb.conf的配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| [global] workgroup = bmit server string = Frank's Samba File Server
#我的服务器名描述
security = user
#使用用户验证机制
encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd #使用加密密码机制,在win95和winnt使用的是明文
其他的基本上可以按照默认的来。
[homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775
#homes段满足第1条件
[caiwu] comment = caiwu path = /home/samba/caiwu public = no valid users = @caiwu,@lingdao,network02 write list = caiwu01 printable = no
#caiwu段满足我们的第2要求
[lingdao] comment = lingdao path = /home/samba/lingdao public = no browseable = no valid users = @lingdao,network02 printable = no
#lingdao段能满足我们的第3要求
[exchage] comment = Exchange File Directory path = /home/samba/exchange public = yes writable = yes
#exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行
|
1
| chmod -R 1777 /home/samba/exchange
|
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求
1 2 3 4 5 6 7
| [public] comment = Read Only Public path = /home/samba/public public = yes read only = yes
|
到此为止设置已经能实现共享文件要求,记得重启服务
如果大家没有winodws,不妨先用samba的cilent端命令来测试一下
命令的用法举几个例子
guest帐户查询服务器的samba共享情况,可以检验一下是否lingdao目录时候能被guest帐户看到,应该是看不到的,当然也可以以某个用户的名义查看
1
| smbclient -L 服务器ip -U caiwu01
|
系统会提示密码,只要输入smb密码就行。
1 2 3 4 5 6 7
| smbclient //服务器ip/caiwu -U caiwu01 smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01
|
测试
1
| smbclient -L //localhost/share
|
或者
1
| smbclient-L \\127.0.0.1 -Umyname
|
这时输入的密码就是你刚才设置的samba密码使用
- windows用户
在我的电脑地址栏里输入\192.168.1.1访问;也可windows+R输入\192.168.1.1;
登录后可以右击映射到本地驱动器。
- Linux
设置开机挂载将如下命令写入/etc/fstab
1
| //192.168.1.1/share /mnt/ml45 cifs defaults,auto,username=youruser,password=passwd 0 0
|
然后#mount -a